<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class ExtendUserGroupsForVolunteer extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        //扩展框架里默认的user_groups表，让其可以支持志愿者团队这种类型的用户组
        //user_groups默认有4种类型，1=外部企业单位，2=内部组织机构，3=内部部门，4=个人组
        //其中内部组织机构和内部部门都是针对平台运营单位来说的，因为是通用的架构，所以这一个内部组织机构是具体项目的主管单位
        //        比如：对于中华志愿者平台来说，主管单位就是民政部下属的中华志愿者协会，这是独一无二的平台主体单位
        //              而其它的所有组织或志愿者团队，我们都可以看作外部企业单位
        //               个人组是把一个user个人个体也看作一个独立的运营单位，用户只要创建了就会有一个全局唯一的个人组，这样以后当用户需要在平台上协作化时，可以通过升级方式把个人组变为一个企业
        //本次扩展的user_groups表里增加了志愿者团队标识位，因此只要用户组类型为 外部企业单位（1）或者 内部组织机构（2）时，那么只要这个字段设为1，则该用户组就是一个志愿者团队
        Schema::table('user_groups', function ($table) {
            $table->tinyInteger('volunteer_group_flag')->unsigned()->nullable()->comment('志愿者团队标识：0=不是志愿者团队，1=是志愿者团队');

            $table->integer('volunteer_num')->nullable()->comment('志愿者人数');
            /*
            后面还有很多需要扩展的志愿者团队信息，暂时预留这些字段
            */
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('user_groups', function ($table) {
            $table->dropColumn(['volunteer_group_flag', 'volunteer_num']);
        });
    }
}
